NXP backend - added support for aten.abs using the new Neutron flow#19328
NXP backend - added support for aten.abs using the new Neutron flow#19328novak-vaclav wants to merge 4 commits intopytorch:mainfrom
aten.abs using the new Neutron flow#19328Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/19328
Note: Links to docs will display an error until the docs builds have been completed. ❌ 11 Awaiting Approval, 1 New FailureAs of commit 420ab94 with merge base 48a8d58 ( AWAITING APPROVAL - The following workflows need approval before CI can run:
NEW FAILURE - The following job has failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
@pytorchbot label "module: nxp" |
|
@pytorchbot label "release notes: nxp" |
There was a problem hiding this comment.
Pull request overview
Adds aten.abs delegation support for the NXP backend when using the new Neutron-C (MLIR-based) flow, and expands test coverage to exercise both legacy and new-flow behavior.
Changes:
- Added new-flow target support gating for
aten.abs(currently limited to QDQ quantizedint8/uint8) in the Abs node converter. - Refactored/extended
test_abs_converter.pyto split legacy vs new Neutron flow tests and add NSYS-based lower/run/compare coverage for the new flow. - Updated NXP copyright headers to include 2026.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| backends/nxp/tests/ir/converter/node_converter/test_abs_converter.py | Splits legacy/new-flow tests and adds NSYS-based new-flow runtime validation for abs (including a conv+abs partitioning case). |
| backends/nxp/backend/ir/converter/node_converters/ops_converters/abs_converter.py | Adds new-flow target support checks for abs based on QDQ quantized IO dtype (int8/uint8). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ec37498 to
7f474aa
Compare
7f474aa to
420ab94
Compare
|
Rebased onto #19327 Please review @MartinPavella |
| if not _is_quantize(quantize_node := users[0]): | ||
| # Broken QDQ schema. |
|
|
||
| tflite_flatbuffers_model, io_formats = converter_spy.spy_return | ||
| exported_program: ExportedProgram = converter_spy.call_args.args[1] | ||
| tflite_flatbuffers_model, io_formats = converter_spy.spy_return |
| Slice = exir_ops.edge.aten.slice.Tensor | ||
| SliceCopy = exir_ops.edge.aten.slice_copy.Tensor | ||
| Softmax = exir_ops.edge.aten._softmax.default | ||
| Squeeze = exir_ops.edge.aten.squeeze.default | ||
| SqueezeDim = exir_ops.edge.aten.squeeze.dim | ||
| SqueezeDims = exir_ops.edge.aten.squeeze.dims | ||
| Relu = exir_ops.edge.aten.relu.default |
| self.expected_delegated_ops = expected_delegated_ops | ||
| self.expected_non_delegated_ops = expected_non_delegated_ops | ||
|
|
||
| self.ops_to_ignore = ops_to_ignore or self.default_ops_to_ignore |
Summary
Added support for
aten.absusing new Neutron flow.Test plan
tests can be manually run using
pytest -c /dev/null backends/nxp/tests/cc @robert-kalmar @JakeStevens @digantdesai @MartinPavella